package com.sisgesbyte.web.managedBean.seguridad;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.common.Validaciones;
import com.sisgesbyte.services.sistema.PermisosTabla;
import com.sisgesbyte.services.sistema.bean.AccesoTabla;
import com.sisgesbyte.services.sistema.bean.TablaPermisosResponse;
import com.sisgesbyte.web.beanUtil.DatosUsuariosBean;

@ManagedBean
@SessionScoped
public class TablaRestriccionesMBean implements Serializable{

	private static final long serialVersionUID = 1L;

	@EJB
	private PermisosTabla permisosTabla;
	@Inject
	private Validaciones validaciones;
	private int codigoRol;
	private String codTransaccion;
	private int idUsuario;
	private String rol;
	private List<AccesoTabla> listPermisosTabla;
	public  int count = 0;

	
	public TablaRestriccionesMBean(){
		
	}
	
	@PostConstruct
	public void init(){
		
		if(count<1){
			cargarLista();
		}
		count++;
	}

	public int getCodigoRol() {
		return codigoRol;
	}

	public void setCodigoRol(int codigoRol) {
		this.codigoRol = codigoRol;
	}

	public String getCodTransaccion() {
		return codTransaccion;
	}

	public void setCodTransaccion(String codTransaccion) {
		this.codTransaccion = codTransaccion;
	}

	public int getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(int idUsuario) {
		this.idUsuario = idUsuario;
	}

	public String getRol() {
		return rol;
	}

	public void setRol(String rol) {
		this.rol = rol;
	}
	

	public List<AccesoTabla> getListPermisosTabla() {
		return listPermisosTabla;
	}

	public void setListPermisosTabla(List<AccesoTabla> listPermisosTabla) {
		this.listPermisosTabla = listPermisosTabla;
	}
	
	public void cargarLista(){
		
		try{
			
			FacesContext context = FacesContext.getCurrentInstance(); 
			HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();  
			HttpSession httpSession = request.getSession(false);  
				
			codigoRol= (int) httpSession.getAttribute("codRol");
			idUsuario= (int) httpSession.getAttribute("codUsuario");
			rol=(String)httpSession.getAttribute("nombreRol");
			codTransaccion=(String)httpSession.getAttribute("codSession");
			
			//registramos Nuevo usuario en variable
			DatosUsuariosBean datos = new DatosUsuariosBean();
			datos.setSession(codTransaccion);
			datos.setUsuario((String)httpSession.getAttribute("usuario"));
			validaciones.validarUsuarioActivo(datos);
			
			TablaPermisosResponse permisos = permisosTabla.listarPermisosTabla(codigoRol, codTransaccion);
	
			if(permisos.getCodigoRespuesta().equals(ConstantesInternasSistema.CODIGO_EXITO)){
				setListPermisosTabla(permisos.getListaAccesosTabla());	
			}else{
				System.out.println("No se encontraron datos para cargar los permisos");
			}
		}catch(Exception e){
			System.out.println("Hubo un problema en el Proceso de TablaRestriccionesMBean");
			
		}
		
	}
}
